package com.fengze.business.domain;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.fengze.common.annotation.Excel;
import com.fengze.common.core.domain.BaseEntity;

/**
 * 付款对象 fz_payment
 * 
 * @author lug
 * @date 2024-12-10
 */
public class Payment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 项目成员名称 */
    private Long id;

    /** 应付日期
 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "应付日期 ", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dueDate;

    /** 款项用途 */
    @Excel(name = "款项用途")
    private String fundsUse;

    /** 支付方式编码 */
    @Excel(name = "支付方式编码")
    private String payMethodCode;

    /** 支付方式名称 */
    @Excel(name = "支付方式名称")
    private String payMethod;

    /** 开始时间 */
    @Excel(name = "开始时间")
    private Long projectId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 创建用户id */
    @Excel(name = "创建用户id")
    private Long userId;

    /** 创建部门id */
    @Excel(name = "创建部门id")
    private Long deptId;

    /** 文件存放路径 */
    @Excel(name = "文件存放路径")
    private String fileUrl;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 合同id */
    @Excel(name = "合同id")
    private Long contractId;

    /** 创建人、申请人 */
    @Excel(name = "创建人、申请人")
    private String createUserName;

    /** 收款方全称 */
    @Excel(name = "收款方全称")
    private String payeeFullName;

    /** 开户银行 */
    @Excel(name = "开户银行")
    private String bankName;

    /** 银行账号 */
    @Excel(name = "银行账号")
    private String accountNumber;

    /** 开票情况编码 */
    @Excel(name = "开票情况编码")
    private String invoiceStatusCode;

    /** 开票情况 */
    @Excel(name = "开票情况")
    private String invoiceStatus;

    /** 审核状态1起草状态，2审核中 3审核通过 4拒绝 */
    @Excel(name = "审核状态1起草状态，2审核中 3审核通过 4拒绝")
    private Integer auditStatus;

    /** 付款状态1未付款 2已付款 */
    @Excel(name = "付款状态1未付款 2已付款")
    private Integer paymentStatus;

    /** 付款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "付款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentDate;

    /** 付款说明 */
    @Excel(name = "付款说明")
    private String paymentDes;

    /** 付款操作人员主键 */
    @Excel(name = "付款操作人员主键")
    private Long paymentUserId;

    /** 付款操作人员 */
    @Excel(name = "付款操作人员")
    private String paymentUserName;

    /** 付款操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "付款操作时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentOpDate;

    private BigDecimal paymentMoney;

    public BigDecimal getPaymentMoney() {
        return paymentMoney;
    }

    public void setPaymentMoney(BigDecimal paymentMoney) {
        this.paymentMoney = paymentMoney;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setDueDate(Date dueDate) 
    {
        this.dueDate = dueDate;
    }

    public Date getDueDate() 
    {
        return dueDate;
    }
    public void setFundsUse(String fundsUse) 
    {
        this.fundsUse = fundsUse;
    }

    public String getFundsUse() 
    {
        return fundsUse;
    }
    public void setPayMethodCode(String payMethodCode) 
    {
        this.payMethodCode = payMethodCode;
    }

    public String getPayMethodCode() 
    {
        return payMethodCode;
    }
    public void setPayMethod(String payMethod) 
    {
        this.payMethod = payMethod;
    }

    public String getPayMethod() 
    {
        return payMethod;
    }
    public void setProjectId(Long projectId) 
    {
        this.projectId = projectId;
    }

    public Long getProjectId() 
    {
        return projectId;
    }
    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }
    public void setFileUrl(String fileUrl) 
    {
        this.fileUrl = fileUrl;
    }

    public String getFileUrl() 
    {
        return fileUrl;
    }
    public void setContractName(String contractName) 
    {
        this.contractName = contractName;
    }

    public String getContractName() 
    {
        return contractName;
    }
    public void setContractId(Long contractId) 
    {
        this.contractId = contractId;
    }

    public Long getContractId() 
    {
        return contractId;
    }
    public void setCreateUserName(String createUserName) 
    {
        this.createUserName = createUserName;
    }

    public String getCreateUserName() 
    {
        return createUserName;
    }
    public void setPayeeFullName(String payeeFullName) 
    {
        this.payeeFullName = payeeFullName;
    }

    public String getPayeeFullName() 
    {
        return payeeFullName;
    }
    public void setBankName(String bankName) 
    {
        this.bankName = bankName;
    }

    public String getBankName() 
    {
        return bankName;
    }
    public void setAccountNumber(String accountNumber) 
    {
        this.accountNumber = accountNumber;
    }

    public String getAccountNumber() 
    {
        return accountNumber;
    }
    public void setInvoiceStatusCode(String invoiceStatusCode) 
    {
        this.invoiceStatusCode = invoiceStatusCode;
    }

    public String getInvoiceStatusCode() 
    {
        return invoiceStatusCode;
    }
    public void setInvoiceStatus(String invoiceStatus) 
    {
        this.invoiceStatus = invoiceStatus;
    }

    public String getInvoiceStatus() 
    {
        return invoiceStatus;
    }
    public void setAuditStatus(Integer auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public Integer getAuditStatus() 
    {
        return auditStatus;
    }
    public void setPaymentStatus(Integer paymentStatus) 
    {
        this.paymentStatus = paymentStatus;
    }

    public Integer getPaymentStatus() 
    {
        return paymentStatus;
    }
    public void setPaymentDate(Date paymentDate)
    {
        this.paymentDate = paymentDate;
    }

    public Date getPaymentDate()
    {
        return paymentDate;
    }
    public void setPaymentDes(String paymentDes) 
    {
        this.paymentDes = paymentDes;
    }

    public String getPaymentDes() 
    {
        return paymentDes;
    }
    public void setPaymentUserId(Long paymentUserId) 
    {
        this.paymentUserId = paymentUserId;
    }

    public Long getPaymentUserId() 
    {
        return paymentUserId;
    }
    public void setPaymentUserName(String paymentUserName) 
    {
        this.paymentUserName = paymentUserName;
    }

    public String getPaymentUserName() 
    {
        return paymentUserName;
    }
    public void setPaymentOpDate(Date paymentOpDate) 
    {
        this.paymentOpDate = paymentOpDate;
    }

    public Date getPaymentOpDate() 
    {
        return paymentOpDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("dueDate", getDueDate())
            .append("fundsUse", getFundsUse())
            .append("payMethodCode", getPayMethodCode())
            .append("payMethod", getPayMethod())
            .append("projectId", getProjectId())
            .append("projectName", getProjectName())
            .append("userId", getUserId())
            .append("deptId", getDeptId())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("fileUrl", getFileUrl())
            .append("contractName", getContractName())
            .append("contractId", getContractId())
            .append("createUserName", getCreateUserName())
            .append("payeeFullName", getPayeeFullName())
            .append("bankName", getBankName())
            .append("accountNumber", getAccountNumber())
            .append("invoiceStatusCode", getInvoiceStatusCode())
            .append("invoiceStatus", getInvoiceStatus())
            .append("auditStatus", getAuditStatus())
            .append("paymentStatus", getPaymentStatus())
            .append("paymentDate", getPaymentDate())
            .append("paymentDes", getPaymentDes())
            .append("paymentUserId", getPaymentUserId())
            .append("paymentUserName", getPaymentUserName())
            .append("paymentOpDate", getPaymentOpDate())
            .toString();
    }
}
